

/*
字典:
var maps={
  'one': 1,
  'two': 2,
  'three': 3,
};

规定item同一类型:
var aMap = <String, double>{};
var aMap = <int, double>{};

final gifts = {
 'first': 'partridge',
 'second': 'turtle doves',
 'fifth': 'golden rings'
};

final nobleGases = {
 2: 'helium',
 10: 'neon',
 18: 'argon',
};

final gift = gifts['first'];
final helium = nobleGases[2];


是否存在key:  gifts.containsKey('fifth')

添加/更改:  gifts['abc'] = 'hello';
gifts.addAll({
 'second': 'turtle doves',
 'fifth': 'golden rings',
});
gifts.addEntries([
 MapEntry('second', 'turtle doves'),
 MapEntry('fifth', 'golden rings'),
]);

删除:
gifts.remove('first');
gifts.removeWhere((key, value) => value == 'partridge');

判空:  gifts.isEmpty


//Map

  var person = {"name": "王五", "age": 30};
  print(person);
  print("----------10");
  var map = new Map();
  map["name"] = "张三";
  map["age"] = 28;
  print(map);

  print("----------11");
  //常用属性
  //获取所有的key
  print(person.keys.toList());
  print("----------12");
  //获取所有的valus
  print(person.values.toList());

  print("----------13");
  print(person.isEmpty);
  print(person.isNotEmpty);
  print("----------14");
  //常用方法
  person.addAll({"sex": "男"});
  print(person);

  print("----------14");
  person.remove("name");
  print(person);
  print("----------15");
  print(person.containsKey("age"));
  print(person.containsValue(30));

  print("----------16");


使用...:
var map1 = {'foo': 'bar', 'key': 'value'};
var map2 = {'foo': 'baz123', ...map1}; // {foo: bar, key: value}



Map 集合遍历:

    // 1 . 使用 forEach 进行遍历
    president.forEach( (key, value){
      print("forEach 遍历 : $key : $value");
    } );

    // 2 . 通过 for 循环遍历 Map 集合
    // 调用 Map 对象的 keys 成员 , 返回一个由 键 Key 组成的数组
    for (var key in president.keys){
      print("for 循环遍历 : Key : $key , Value : ${president[key]}");
    }


    // 3 . 使用 map 方法进行遍历,遍历过程中生成新的 Map 集合,遍历后 , 会返回一个新的 Map 集合
    // 传入一个回调函数 , 参数是 key value , 返回值是新的 Map 集合
    Map president2 = president.map(
            (key, value){
          // 这里将 Map 集合中的 Key 和 Value 进行颠倒 , 生成一个新的 Map 集合
          return MapEntry(value, key);
        }
    );

    // 打印新的 Map 集合
    print(president2);




 */

void main(){

  final nobleGases = {
    2: 'helium',
    10: 'neon',
    18: 'argon',
  };

  print(nobleGases[2]);


}